Techniques for automatically generating designs having characteristic topologies for urban design projects

ABSTRACT

An urban design pipeline automatically generates design options for an urban design project. The urban design pipeline includes a geometry engine and an evaluation engine. The geometry engine analyzes design criteria, design objectives, and design heuristics associated with the urban design project and then generates numerous candidate designs. The design criteria specify a property boundary associated with a region of land to be developed. The design objectives indicate a specific type of topology that is derived from an existing urban layout. The design heuristics include different sets of construction rules for generating designs with specific types of topologies. The geometry engine generates candidate designs that conform to the property boundary and have topological characteristics in common with the existing urban layout.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the priority benefit of United Statesprovisional patent application titled, “Generative Design Techniques forUrban and Neighborhood Planning,” filed on Nov. 10, 2017 and having Ser.No. 62/584,711. The subject matter of this related application is herebyincorporated herein by reference.

BACKGROUND Field of the Various Embodiments

Embodiments of the present invention relate generally to computer-aideddesign technology and, more specifically, to techniques forautomatically generating designs having characteristic topologies forurban design projects.

Description of the Related Art

In a typical urban design project, a designer generates a design fordeveloping a property. For example, the designer could plan theplacement and organization of a number of houses to be built within ahousing subdivision. The designer usually generates each design bymanually and/or mentally making a number of design choices based onvarious design criteria and design objectives associated with the urbandesign project.

One common design criterion in urban design projects is thatconstruction can occur only within the boundaries of the property beingdeveloped. Accordingly, when making various design choices, the designerhas to manually and/or mentally adapt the organization of his/her designwith the relevant property boundaries. For example, the designer couldplace a road perpendicular to a given property boundary to produce anentrance/egress point for the associated property. One common designobjective in urban design projects is that a given design should havecharacteristics that are derived from a pre-existing urban layout, whichcould include specific features or general organizational principles. Toaddress this design objective, a designer usually has to study thepre-existing urban layout and then use intuition and creativity togenerate a design that incorporates one or more characteristics of thepre-existing urban layout. For example, the designer could observe thatthe pre-existing urban layout includes three access points and thengenerate one or more designs that also include three access points. As asecond example, the designer could observe that the pre-existing layoutincludes a radial pattern of streets and circulation and then generateone or more designs that also include a radial pattern of streets andcirculation.

One drawback of the above approach is that designers cannot alwaysgenerate designs that both fit within the relevant property boundariesand include characteristics derived from a pre-existing urban layout. Inparticular, property boundaries oftentimes have complicated and awkwardshapes that pose difficulties for designers when working on designs.Additionally, these property boundaries can differ significantly fromthe property boundaries associated with pre-existing urban layouts,which prevents designers from reusing those pre-existing urban layouts.Conversely, pre-existing urban layouts sometimes have complex andelaborate topologies that cannot easily be adapted to the boundaries ofa property for which a designer is developing a design. Consequently,designers oftentimes generate designs that either do not fit within theboundaries of the properties for which the designs are being developedor do not include characteristics derived from any pre-existing urbanlayout. Therefore, in practice, a designer usually has to modify adesign over many iterations until a feasible design is generated.

Another drawback of the above approach is that the process of makingdesign choices for a given urban design project based on a specificproperty boundaries and a specific pre-existing urban layout usuallycannot be readily applied to other subsequent urban design projects. Inparticular, subsequent urban design projects typically have differentproperty boundaries or need to be reflective of different pre-existingurban layouts. Consequently, the iterative design process followed bydesigners and described above usually has to be developed from scratchfor each new urban design project.

As the foregoing illustrates, what is needed in the art are moreeffective techniques for generating designs for urban design projects.

SUMMARY

Various embodiments include a computer-implemented method for generatingdesigns for an urban design project via a computer-aided design (CAD)application, including generating, via a geometry engine included in theCAD application, a closed contour that surrounds a design area based onone or more property boundaries associated with a region of land,determining, via the geometry engine, a first segment and a secondsegment of the closed contour, wherein the first segment and the secondsegment reside on opposite sides of the design area and are both atleast partially aligned in a first direction, generating, via thegeometry engine, a first set of mesh lines based on the first segmentand the second segment, wherein the first set of mesh lines span thedesign area and couple the first segment to the second segment,generating, via the geometry engine, a second set of mesh lines based onthe first set of mesh lines to generate a design mesh, and populating,via the geometry engine, the design mesh with a first set of structuresto generate a first candidate design, wherein the first set ofstructures resides within the closed contour and is aligned to at leasta first portion of the closed contour.

At least one technological advantage of the disclosed urban designpipeline is that design options are automatically generated that bothrespect a current property boundary and also include characteristicfeatures derived from the topology of an existing urban layout.Accordingly, designers can generate design options based on complexproperty boundaries that include similar attributes as existing urbanlayouts.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the variousembodiments can be understood in detail, a more particular descriptionof the inventive concepts, briefly summarized above, may be had byreference to various embodiments, some of which are illustrated in theappended drawings. It is to be noted, however, that the appendeddrawings illustrate only typical embodiments of the inventive conceptsand are therefore not to be considered limiting of scope in any way, andthat there are other equally effective embodiments.

FIG. 1 illustrates a system configured to implement one or more aspectsof the present invention;

FIG. 2 is a more detailed illustration of the urban design pipeline ofFIG. 1, according to various embodiments of the present invention;

FIG. 3 is a more detailed illustration of the geometry engine of FIG. 2,according to various embodiments of the present invention;

FIG. 4 is a flow diagram of method steps for generating geometryassociated with a design option for an urban design project, accordingto various embodiments of the present invention;

FIG. 5 illustrates a property boundary that is processed by the meshgeneration module of FIG. 3 to generate a design mesh, according tovarious embodiments of the present invention;

FIG. 6 illustrates portions of the property boundary of FIG. 5 thatreside on opposite sides of a design space, according to variousembodiments of the present invention;

FIG. 7 illustrates the portions of the property boundary of FIG. 6discretized into opposing vertices, according to various embodiments ofthe present invention;

FIG. 8 illustrates the opposing vertices of FIG. 7 connected to form aset of curves, according to various embodiments of the presentinvention;

FIG. 9 illustrates the curves of FIG. 8 discretized into a set ofvertices, according to various embodiments of the present invention;

FIG. 10 illustrates the set of vertices of FIG. 9 connected to form arough mesh, according to various embodiments of the present invention;

FIG. 11 illustrates how the rough mesh of FIG. 10 is relaxed to form adesign mesh, according to various embodiments of the present invention;

FIG. 12 is a flow diagram of method steps for generating a design meshfor a design option based on one or more property boundaries, accordingto various embodiments of the present invention;

FIG. 13 illustrates portions of the design mesh of FIG. 11 that theneighborhood topology module of FIG. 3 selects to form a network ofroads, according to various embodiments of the present invention;

FIG. 14 illustrates how the network of roads of FIG. 13 divides thedesign mesh into regions, according to various embodiments of thepresent invention;

FIG. 15 illustrates how the regions of FIG. 14 are modified to generateneighborhood subdivisions, according to various embodiments of thepresent invention;

FIG. 16 is a flow diagram of method steps for generating road andneighborhood topologies for a design option, according to variousembodiments of the present invention;

FIG. 17 illustrates a placement that the house topology module of FIG. 3generates for house units within a neighborhood subdivision, accordingto various embodiments of the present invention;

FIG. 18 illustrates unoccupied regions of the neighborhood subdivisionof FIG. 17 that are identified by the apartment topology module of FIG.3, according to various embodiments of the present invention;

FIG. 19 illustrates a placement that the apartment topology module ofFIG. 3 generates for an apartment complex within one of the unoccupiedregions of FIG. 18, according to various embodiments of the presentinvention;

FIG. 20 illustrates a neighborhood layout generated by the housetopology module and apartment topology module of FIG. 2, according tovarious embodiments of the present invention;

FIG. 21 is a flow diagram of method steps for populating neighborhoodsubdivisions with dwelling units for a design option, according tovarious embodiments of the present invention;

FIG. 22 illustrates a design option that is derived from the topology ofa pre-existing urban layout, according to various embodiments of thepresent invention;

FIG. 23 illustrates a design option that is derived from the topology ofanother pre-existing urban layout, according to various otherembodiments of the present invention; and

FIG. 24 illustrates a design option that is derived from the topology ofyet another pre-existing urban layout, according to various otherembodiments of the present invention.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth toprovide a more thorough understanding of the various embodiments.However, it will be apparent to one skilled in the art that theinventive concepts may be practiced without one or more of thesespecific details.

As noted above, designers typically rely on intuition and experience togenerate designs that both respect a given property boundary and alsoappear topologically similar to existing urban layouts. However, doingso can be difficult because property boundaries oftentimes have complexand awkward shapes that differ significantly from the propertyboundaries associated with existing layouts. Likewise, existing urbanlayouts can have complex topologies that are not easily adaptable todifferent property boundaries. Consequently, designers oftentimesgenerate designs that either do not fit within the property boundary ordo not appear to be inspired by the existing urban layout. In practice,designers usually have to iteratively modify designs many times until afeasible design is generated. Furthermore, this iterative process cannotbe applied to other urban design projects. Consequently, designersusually have to start from scratch with each new urban design project.

To address these issues, embodiments of the invention include an urbandesign pipeline that automatically generates design options for an urbandesign project. The urban design pipeline includes a geometry engine andan evaluation engine. The geometry engine analyzes design criteria,design objectives, and design heuristics associated with the urbandesign project and then generates numerous candidate designs. The designcriteria specify a property boundary associated with a region of land tobe developed, among other things. The design objectives indicatespecific objective functions that should be optimized as well as variousattributes that designs should have, including a specific type oftopology that is derived from an existing urban layout. The designheuristics include different sets of construction rules for generatingdesigns with different types of topologies. The geometry enginegenerates candidate designs that conform to the property boundary andhave topological characteristics in common with the existing urbanlayout. Each candidate design includes a different layout of roads,house units, apartment units, and parkland suitable for populating theregion of land with occupants.

The evaluation engine evaluates each candidate design across a set ofdesigns metrics in order to inform further iteration of the geometryengine. Based on these design metrics, the geometry engine modifies thecandidate designs to generate additional designs that more effectivelyoptimize the design metrics. The geometry engine and evaluation engineoperate iteratively in this manner until a convergence criterion is metand a final set of design options is generated. These design optionshave topologies that not only conform to the property boundary but alsoinclude similar topological features as an existing urban layout.

At least one technological advantage of the disclosed urban designpipeline is that design options are automatically generated that bothrespect a current property boundary and also include characteristicfeatures derived from the topology of an existing urban layout.Accordingly, designers can generate design options based on complexproperty boundaries with features that are similar to existing urbanlayouts. Another technological advantage is that the disclosed urbandesign pipeline includes repeatable components that can be easilyadapted to other urban design projects with different propertyboundaries that need to be inspired by different existing urban layouts.Thus, the process of generating designs can be greatly expeditedcompared to conventional, manual techniques. These technologicaladvantages represent multiple technological advancements relative toprior art approaches.

System Overview

FIG. 1 illustrates a system configured to implement one or more aspectsof the present invention. As shown, a system 100 includes one or moreclients 110 and one or more servers 130 configured to interoperate togenerate a set of design options 140 for an urban design project. Agiven client 110 or a given server 130 may be any technically feasibletype of computer system, including a desktop computer, a laptopcomputer, a mobile device, a virtualized instance of a computing device,a distributed and/or cloud-based computer system, and so forth. Clients110 and servers 130 are coupled together via a network 150. Network 150may be any technically feasible set of interconnected communicationlinks, including a local area network (LAN), wide area network (WAN),the World Wide Web, or the Internet, among others.

As further shown, a client 110 includes a processor 112, input/output(I/O) devices 114, and a memory 116, coupled together. Processor 112includes any technically feasible set of hardware units configured toprocess data and execute software applications. For example, processor112 could include one or more central processing units (CPUs). I/Odevices 114 include any technically feasible set of devices configuredto perform input and/or output operations, including, for example, adisplay device, a keyboard, and a touchscreen, among others.

Memory 116 includes any technically feasible storage media configured tostore data and software applications, such as, for example, a hard disk,a random-access memory (RAM) module, and a read-only memory (ROM).Memory 116 includes client-side urban design pipeline 120(0).Client-side urban design pipeline 120(0) is a software application that,when executed by processor 112, causes processor 112 to participate ingenerating design options 140. In doing so, client-side urban designpipeline 120(0) interoperates with a corresponding client-side urbandesign pipeline 120(1) that resides within server 130, as described ingreater detail below.

Server 130 includes a processor 132, I/O devices 134, and a memory 136,coupled together. Processor 132 includes any technically feasible set ofhardware units configured to process data and execute softwareapplications, such as one or more CPUs. I/O devices 134 include anytechnically feasible set of devices configured to perform input and/oroutput operations, such as a display device, a keyboard, or atouchscreen, among others.

Memory 136 includes any technically feasible storage media configured tostore data and software applications, such as, for example, a hard disk,a RAM module, and a ROM. Memory 136 includes server-side urban designpipeline 120(1). Server-side urban design pipeline 120(1) is a softwareapplication that, when executed by processor 132, causes processor 132to participate in generating design options 140. In so doing,server-side urban design pipeline 120(1) interoperates with client-sideurban design pipeline 120(0), as mentioned above.

In operation, one or more instances of client-side urban design pipeline120(0) and one or more instances of server-side urban design pipeline120(1) interoperate to generate multiple design options 140(0)-140(N).Each design option 140 describes a different development plan fordeveloping a physical property to have a particular topology. Thetopology associated with a given design option 140 conforms to aproperty boundary associated with the physical property and also sharesorganizational attributes with an existing urban layout. As a generalmatter, one or more client-side urban design pipelines 120(0) and one ormore server-side urban design pipelines 120(1) collectively representdifferent portions of a distributed software entity. Thus, forsimplicity, client-side urban design pipeline 120(0) and server-sideurban design pipeline 120(1) will be collectively referred to herein asurban design pipeline 120. Urban design pipeline 120 is described ingreater detail below in conjunction with FIG. 2.

FIG. 2 is a more detailed illustration of the urban design pipeline ofFIG. 1, according to various embodiments of the present invention. Asshown, urban design pipeline 120 includes a geometry engine 200 and anevaluation engine 210. Geometry engine 200 and evaluation engine 210 areconfigured to perform an iterative process to generate design options140 based on design criteria 202, design objectives 204, and designheuristics 206.

Design criteria 202 can include design constraints that generallydescribe features and/or attributes of designs that should be avoidedwhen generating design options 140. A given design constraint couldindicate, for example, regions of the physical property where theconstruction of structures cannot occur, a maximum number of floors forstructures that cannot be exceeded, disallowed placement patterns forroads, and so forth. Design constraints can be derived from localdevelopment regulations and/or building codes as well as directivesreceived from one or more stakeholders in the urban design project.

Design criteria 202 can also include design requirements that generallydescribe features and/or attributes of designs that should be includedwithin design options 140. A given design requirement could indicate,for example, one or more required orientations for structures, a numberof parking lots needed for each structure, a target configuration forroad intersections, and so forth. Design requirements can be derivedfrom local development regulations and/or building codes as well asdirectives received from one or more stakeholders in the urban designproject.

Design criteria 202 includes a property boundary associated with thephysical property to be developed. For example, design criteria 202could include a sequence of vertices that delineate the propertyboundary. The property boundary can have any technically feasible shape,including simple shapes such as squares and other polygons as well asmore complex shapes involving both linear and curved segments. As ageneral matter, the property boundary is a closed contour that defines aregion of land to be developed.

Design objectives 204 include a set of objective functions to bemaximized or minimized when generating design options 140. A givenobjective function quantifies a specific attribute of a given design. Inpractice, design objectives 204 include objective functions thatquantify solar energy collection, available sight lines associated withwindows in structures, the size of yards associated with structures, thevariety of neighborhoods, the distribution of programs, total projectcost, and total project profit.

In addition, design objectives 204 include an indication of at least onetype of topology that should be emulated by any given candidate design208. As referred to herein, the term “topology” refers to at least oneof the organization of structures within a given design and a pattern ofinterconnections between those structures. For example, the topology ofa given design could refer to the placement of various houses within thegiven design and/or the layout of roads that connect those houses.

Design heuristics 206 include different sets of construction rules forgenerating designs that have different types of topologies. For example,a first set of construction rules could be used to generate designswhere many perpendicular roads that define a grid of parcels populatedwith high-rise apartment complexes. A given set of construction rulescan be derived from the topology of an existing urban layout. In theexample described above, the first set of construction rules could bederived from the topology of Manhattan, where high-rise apartmentcomplexes populate areas defined by a grid of roads.

In one embodiment, design heuristics 206 include rules associated withthe generation of roads. Such rules may include rules that control thelength, width, placement, and orientation of segments of roads, as wellas rules that control how segments of roads connect to one another. Inanother embodiment, design heuristics 206 include rules associated withthe generation of neighborhoods. Such rules may include rules thatcontrol the dimensions, aspect ratios, shapes, and alignments ofneighborhoods. In yet another embodiment, design heuristics 206 includerules associated with the placement of dwelling units. These rules mayinclude rules that control the orientation, grouping, and variation ofdwelling units, as well as rules that control the geometry of individualdwelling units.

In operation, geometry engine 200 receives design criteria 202, designobjectives 204, and design heuristics 206 and generates candidatedesigns 208 for the urban design project. Each candidate design 208describes a different development plan for developing the physicalproperty with various structures, roads, and other fixtures associatedwith the urban design project. A given candidate design 208 meets someor all design criteria 202 and is therefore generally considered afeasible design. Candidate designs 208 also achieve design objectives204 to varying degrees. Finally, because candidate designs 208 areconstructed according to design heuristics 206 in the manner describedabove, the topologies of those designs have at least some organizationalcharacteristics in common.

In one embodiment, geometry engine 200 may generate each candidatedesign 208 by parameterizing the set of construction rules included indesign heuristics 206 and then selecting a set of parameters. Geometryengine 200 may generate each candidate design 208 based on a differentset of parameters in order to produce different candidate designs 208having similar features.

Evaluation engine 210 evaluates each candidate design 208 based on theobjective functions included in design objectives 204 to generate designmetrics 212. The design metrics 212 generated for a given candidatedesign 208 quantify the degree to which design objectives 204 are met bythe given candidate design 208. Some design metrics 212 quantify thesolar energy collection, available sight lines, yard size, neighborhoodvariety, program distribution, total project cost, and total projectprofit for the given candidate design 208.

In one embodiment, a topological metric generated for a given candidatedesign 208 indicates the degree to which the topology of the candidatedesign resembles the topology of an existing urban layout. Evaluationengine 210 may compute the topological metric by comparing the topologyof the candidate design 208 to the topology of the existing urban layoutand then computing a total number of similar features or attributes. Forexample, if the topology of the existing urban layout includes numerous5-way intersections, then evaluation engine 210 could count the numberof 5-way intersections included in the topology of the candidate design208. Evaluation engine 210 could then compare that number to the numberof 5-way intersections included in the existing urban layout to generatethe topological metric.

Geometry engine 200 analyzes design metrics 212 in conjunction withcandidate designs 208 and then regenerates and/or modifies candidatedesigns 208, based on design heuristics 206, to generate improvedversions of candidate designs 208 that better achieve design objectives204 while still meeting design criteria 202. In the manner described,geometry engine 200 and evaluation engine 210 complete an iteration ofurban design pipeline 120. In a subsequent iteration, evaluation engine210 generates design metrics 212 for these improved versions ofcandidate designs 208, and geometry engine 200 again regenerates and/ormodifies candidate designs 208.

Geometry engine 200 and evaluation engine 210 iterate until one or moreconvergence criteria are met. When the convergence criteria are met,urban design pipeline 120 outputs the final set of candidate designs 208as design options 140. In one embodiment, geometry engine 200 andevaluation engine 210 execute a multi-objective solver in order togenerate and/or update candidate designs 208 until design metrics 212reach specific threshold values specified in the convergence criteria.

When generating candidate designs 208 as described above, geometryengine 200 implements a multi-step process that is described in greaterdetail below in conjunction with FIG. 3.

FIG. 3 is a more detailed illustration of the geometry engine of FIG. 2,according to various embodiments of the present invention. As shown,geometry engine 200 includes various modules organized in a sequentialarrangement. Those modules include a mesh generation module 300, aneighborhood topology module 310, a house topology module 320, anapartment topology module 330, and a vegetation module 340. Each of themodules shown performs a different set of operations in the generationof candidate designs 208.

Mesh generation module 300 generates an initial mesh for candidatedesigns 208 based on the property boundary associated with the physicalproperty to be developed. Various operations performed during meshgeneration module 300 are described in greater detail below inconjunction with FIGS. 5-12. Neighborhood topology module 310 generatesa network of interconnected roads to define a neighborhood topologybased on the initial mesh generated during mesh generation module 300and based on design heuristics 206. Various operations performed duringneighborhood topology module 310 are described in greater detail belowin conjunction with FIGS. 5 and 13-16. House topology module 320generates topologies of house units within the neighborhoods generatedvia neighborhood topology module 310 and based on design heuristics 206.House topology module 320 is described in greater detail below inconjunction with FIGS. 5 and 17-21. Apartment topology module 330generates topologies of apartment units in unoccupied portions ofneighborhoods based on design heuristics 206. Apartment topology module330 is described along with house topology module 320 below inconjunction with FIGS. 5 and 17-21. Vegetation module 340 fillsunoccupied areas of candidate designs 208 with vegetation and parkland.Vegetation module 340 is described in greater detail below inconjunction with FIG. 5.

Geometry engine 200 executes the various modules described above toprocedurally generate a plurality of candidate designs 208. Variousoperations performed by these modules are described below.

FIG. 4 is a flow diagram of method steps for generating geometryassociated with a design option for an urban design project, accordingto various embodiments of the present invention. Although the methodsteps are described in conjunction with the systems of FIGS. 1-3,persons skilled in the art will understand that any system configured toperform the method steps in any order falls within the scope of thepresent invention.

As shown, a method 400 begins at step 402, where geometry engine 200obtains design criteria 202, design objectives 204, and designheuristics 206 associated with the urban design project. Design criteria202 can include design constraints that describe features and/orattributes of designs that should be avoided when generating designoptions 140. Design criteria 202 can also include design requirementsthat describe features and/or attributes of designs that should beincluded within design options 140. Design objectives 204 include a setof objective functions that should be maximized or minimized whengenerating design options 140. Design objectives 204 also indicate aspecific topology based on which candidate designs 208 should begenerated. Design heuristics 206 include different sets of constructionrules for generating candidate designs 208 with topologies that areorganizationally similar to an existing topology that may be associatedwith an existing urban layout.

At step 404, mesh generation module 300 within geometry engine 200generates a design mesh based on design criteria 202. In particular,mesh generation module 300 performs a sequence of geometrical operationswith a property boundary included in design criteria 202. The designmesh conforms to the property boundary and allows additional structuresto be placed effectively. FIGS. 5-11 depict an example of how meshgeneration module 300 constructs a design mesh.

At step 406, neighborhood topology module 310 within geometry engine 200generates a network of roads based on design heuristics 206 to dividethe design mesh into neighborhood subdivisions. The network of roadsincludes various road segments that are interconnected to form atopology that may resemble a road topology associated with an existingurban layout. Design heuristics 206 include construction rules forgenerating road topologies that have organizational characteristics incommon with the road topology associated with the existing urban layout.For example, the existing urban layout could include long avenuespunctuated by short, curved side streets. Design heuristics 206 wouldinclude construction rules that cause neighborhood topology module 310to generate long avenues intersected by short, curved side streets.FIGS. 13-15 depict an example of how neighborhood topology module 310constructs a network of roads to form neighborhoods.

At step 408, house topology module 320 within geometry engine 200populates the neighborhood subdivisions generated at step 406 with houseunits based on design heuristics 206. Design heuristics 206 includeconstruction rules for placing and arranging house units to reflect theorganization of houses in an existing urban layout. For example, theexisting urban layout could include rows of 4-6 houses set back from aroad by a fixed distance. Design heuristics 206 would includeconstruction rules that cause house topology module 320 to positionhouses in short rows with a particular street offset. FIG. 17 depicts anexample of how house topology module 320 places house units.

At step 410, apartment topology module 330 within geometry engine 200populates the unoccupied portions of neighborhood subdivision withapartment complexes based on design heuristics 206. Design heuristics206 include construction rules for placing and arranging apartmentcomplexes to reflect the organization of apartment complexes in anexisting urban layout. For example, the existing urban layout couldinclude apartment complexes with a longer side that runs along theclosest major cross street. Design heuristics 206 would includeconstruction rules that cause geometry engine 200 to position apartmentcomplexes to follow this same pattern. FIGS. 18-20 depict an example ofhow geometry engine 200 places apartment units.

At step 410, vegetation module 340 within geometry engine 200incorporates parkland and/or vegetation into remaining areas ofneighborhood subdivisions. Geometry engine 200 can implement anytechnically feasible approach to placing vegetation, including bruteforce techniques as well as randomized approaches.

The various modules included in geometry engine 200 implement differentsteps of the method 400 to generate candidate designs 208. In oneembodiment, mesh generation module 300 implements steps 400 and 402 justonce when generating a set of candidate designs 208, and then theremaining modules within geometry engine 200 implement steps 406, 408,410, and 412 multiple times to construct different geometry for eachdifferent candidate design 208. An advantage of the approach describedabove is that candidate designs are automatically generated to conformto a property boundary while also resembling an existing urban layout.

Mesh Generation Module

Mesh generation module 300 of FIG. 3 performs a sequence of geometricconstruction steps to generate a design mesh that conforms to a propertyboundary associated with a property to be developed. FIGS. 5-11 depictvarious examples of how mesh generation 300 performs these constructionsteps.

FIG. 5 illustrates a property boundary that is processed by the meshgeneration module of FIG. 3 to generate a design mesh, according tovarious embodiments of the present invention. As shown, propertyboundary 500 surrounds a design space 510. Property boundary 500 has asemi-irregular contour with some long edges along with several smalledges. Property boundaries with the level of irregularity shown may becommon in urban development projects. Designers oftentimes havedifficulty generating designs that efficiently and effectively use thedesign space encompassed by an irregular property boundary such as thatshown. Among other things, structures to be placed within that space mayhave regular shapes that do not align with irregularities in theproperty boundary. During the generation of candidate designs 208,geometry engine 200 obtains property boundary 500 from design criteria202 and identifies design space 510. Geometry engine 200 then performs asequence of additional steps described in greater detail below togenerate the design mesh.

FIG. 6 illustrates portions of the property boundary of FIG. 5 thatreside on opposite sides of a design space, according to variousembodiments of the present invention. As shown, portions 600 and 610reside on opposite sides of design space 510. Geometry engine 200 canidentify portions 600 and 610 using several different techniques. In oneembodiment, geometry engine 200 identifies continuous sequences of linesegments with an average orientation that is closer to vertical thanhorizontal. In another embodiment, geometry engine 200 eliminates anyhorizontal line segments having greater than a threshold length andretains the remaining portions of property boundary 500.

FIG. 7 illustrates the portions of the property boundary of FIG. 6discretized into opposing vertices, according to various embodiments ofthe present invention. As shown, vertices 700 represent portion 600 andvertices 710 represent portion 610. Vertices 700 and 710 generallyincludes the same number of vertices. Geometry engine 200 can generatevertices 700 and 710 via any technically feasible approach todownsampling and/or discretization. In one embodiment, geometry engine200 may perform a smoothing operation prior to discretizing a givenportion in order to avoid discretizing very small line segments. Forexample, geometry engine 200 could smooth area 720 prior to discretizingportion 610 when generating vertices 710.

FIG. 8 illustrates the opposing vertices of FIG. 7 connected to form aset of curves, according to various embodiments of the presentinvention. As shown, curves 800 span between opposing vertices includedin vertices 700 and 710. As mentioned, vertices 700 and 710 include thesame number of vertices. Geometry engine 200 generates curves 800 bysequentially connecting each vertex in vertices 700 to a correspondingvertex in vertices 710. Each curve 800 can have some degree of curvatureor can be entirely straight. In one embodiment, geometry engine 200extends any curves that do not meet property boundary 500 in order toconnect those curves to property boundary 500.

FIG. 9 illustrates the curves of FIG. 8 discretized into a set ofvertices, according to various embodiments of the present invention. Asshown, vertices 900 span design area 510 between the opposing portionsof property boundary 500. Geometry engine 200 generates vertices 900 bydiscretizing curves 800 of FIG. 8. Vertices 900 are disposed in aregular lattice that generally conforms to property boundary 500 andcovers all portions of design area 510 with approximately the samedensity of vertices.

FIG. 10 illustrates the set of vertices of FIG. 9 connected to form arough mesh, according to various embodiments of the present invention.As shown, rough mesh 1000 is a mesh of polygons. Geometry engine 200generates rough mesh 1000 by connecting adjacent vertices includedvertices 900. Rough mesh 1000 may have regions with slightly irregularpolygons, such as region 1010, that geometry engine 200 subsequentlysimplifies.

FIG. 11 illustrates how the rough mesh of FIG. 10 is relaxed to form adesign mesh, according to various embodiments of the present invention.As shown, design mesh 1100 is a relaxed version of rough mesh 1000. Forexample, region 1110 includes more regular polygons than region 1010 ofrough mesh 1000. Geometry engine 200 can perform any technicallyfeasible approach to simplifying and/or relaxing polygonal meshes whengenerating design mesh 1100.

Referring generally to FIGS. 5-11, mesh generation module 300 performsthe techniques described above sequentially to generate design mesh 1100based on a given property boundary 500. In practice, geometry engine 200generates one design mesh 1100 based on which all candidate designs 208are generated. In one embodiment, mesh generation module 300 may insteadgenerate a different design mesh for some or all candidate designs 208.

FIG. 12 is a flow diagram of method steps for generating a design meshfor a design option based on one or more property boundaries, accordingto various embodiments of the present invention. Although the methodsteps are described in conjunction with the systems of FIGS. 1-11,persons skilled in the art will understand that any system configured toperform the method steps in any order falls within the scope of thepresent invention.

As shown, a method 1200 begins at step 1202, where mesh generationmodule 300 determines a property boundary based on design criteria 202.The property boundary surrounds a design area associated with the urbandevelopment project. The property boundary can be defined as a set ofcurves, line segment, individual points, and so forth. Step 1202 isdescribed by way of example above in conjunction with FIG. 5.

At step 1204, mesh generation module 300 identifies portions of theproperty boundary that reside on opposite sides of a design area. Theidentified portions could be, for example, East-West boundaries of thedesign area. In one embodiment, mesh generation module 300 may identifyopposing portions of the property boundary by determining two sets ofline segments that, on average, are positioned more vertical thanhorizontal (or vice versa). Step 1204 is described by way of exampleabove in conjunction with FIG. 6.

At step 1206, mesh generation module 300 discretizes the portions of theproperty boundary identified at step 1204 into sets of opposingvertices. Mesh generation module 300 generates the same number ofvertices for each portion of the property boundary using any technicallyfeasible approach to discretization. The vertices associated with agiven portion can have equal spacing but need not have the same spacingas vertices in associated with another portion. Step 1206 is describedby way of example above in conjunction with FIG. 7.

At step 1208, mesh generation module 300 connects opposing vertices togenerate a set of curves that span the design area. For example, meshgeneration module 300 could sequentially process each vertex in one setof opposing vertices along with a corresponding vertex in another set ofopposing vertices and connect the two vertices with a curve. The curvecan have any degree of curvature, including zero curvature. Step 1208 isdescribed by way of example above in conjunction with FIG. 8.

At step 1210, mesh generation module 300 discretizes the set of curvesto produce a set of vertices that cover the design area. In so doing,mesh generation module 300 discretizes each curve using any technicallyfeasible approach to downsampling and/or discretization. The spacing ofvertices within a given discretized curve can be equal but need not bethe same as the spacing in other discretized curves. Step 1210 isdescribed by way of example above in conjunction with FIG. 9.

At step 1212, mesh generation module 300 connects adjacent vertices togenerate an initial design mesh. For example, mesh generation module 300could determine, for a given vertex, the four closest vertices to thatvertex and then generate short line segments coupling the vertex tothose four closest vertices, thereby generating a portion of the initialmesh. The initial mesh may have irregularities that can be smoothed insubsequent steps. Step 1212 is described by way of example above inconjunction with FIG. 10.

At step 1214, mesh generation module 300 simplifies and/or relaxes therough design mesh generated at step 1212 to generate a design mesh. Meshgeneration module 300 can implement any technically feasible approach tomesh relaxation to relax and/or simplify the rough design mesh whengenerating the design mesh. In one embodiment, mesh generation module300 generates a different design mesh for each candidate design 208. Inpractice, mesh generation module 300 need only generate one design mesh,though. Step 1214 is described by way of example above in conjunctionwith FIG. 11.

Mesh generation module 300 implements the method 1200 during theiterative design process described above in conjunction with FIG. 2.Once the design mesh is generated, neighborhood topology module 310implements the techniques described below in conjunction with FIG.13-16.

Neighborhood Topology Module

Neighborhood topology module 310 performs a sequence of geometricconstruction steps to generate a network of roads that subdivide thedesign mesh into neighborhoods, thereby forming a neighborhood topology.FIGS. 13-15 depict examples of how neighborhood topology module 310performs these construction steps

FIG. 13 illustrates portions of the design mesh of FIG. 11 that theneighborhood topology module of FIG. 3 selects to form a network ofroads, according to various embodiments of the present invention. Asshown, design mesh 1100 includes a longitudinal line segment 1300 andlatitudinal line segments 1310(0), 1310(1), and 1310(2). Neighborhoodtopology module 310 selects line segments 1310 and 1300 and then assignsa road type to each line segment to generate a network 1320 of roads.Neighborhood topology module 310 performs these operations based ondesign heuristics 206. Accordingly, network 1320 of roads has a topologywith particular characteristics. These characteristics can be derivedfrom a road topology associated with an existing urban layout.

For example, the existing urban layout could include a road topologywhere long avenues span areas of land and are intersected byperpendicular short streets. Design heuristics 208 would then includeconstruction rules that cause network topology module 310 to select oneor more long avenues, such as longitudinal line segment 1300, andseveral shorter streets, such as latitudinal line segments 1310.Neighborhood topology module 310 selects a different set of linesegments for each different candidate design 208. Accordingly, candidatedesigns 208 generally have different road topologies that have commoncharacteristics.

FIG. 14 illustrates how the network of roads of FIG. 13 divides thedesign mesh into regions, according to various embodiments of thepresent invention. As shown, design mesh 1100 includes regions 1400(0)through 1400(7) that reside between portions of network 1320. Some ofthe larger regions 1400 form neighborhood subdivisions, while some ofthe smaller regions 1400 can be merged together to form neighborhoodsubdivisions.

FIG. 15 illustrates how the regions of FIG. 14 are modified to generateneighborhood subdivisions, according to various embodiments of thepresent invention. As shown, neighborhood topology module 310 adjustsregions 1400 of FIG. 14 via various techniques to form neighborhoodsubdivisions 1500. In particular, neighborhood topology module 310merges regions 1400(0) and 1400(1) to form neighborhood subdivisions1500(0), merges regions 1400(2) and 1400(3) to form neighborhoodsubdivision 1500(1), and merges regions 1400(6) and 1400(7) to formneighborhood subdivision 1500(4).

Neighborhood topology module 310 selects these particular regions 1400to merge with one another based on design heuristics 206. For example,design heuristics 206 could indicate that neighborhood subdivisions 1500should have a minimum size in order to be geometrically consistent withan existing urban layout. Accordingly, neighborhood topology module 310would merge adjacent regions 1400 that do not meet this minimum size.

Neighborhood topology module 310 also adjusts the dimensions of regions1400(4) and 1400(5) to generate neighborhood subdivisions 1500(2) and1500(3), respectively. Neighborhood topology module 310 selects theseparticular regions to adjust based on design heuristics 206. Forexample, design heuristics 206 could indicate that neighborhoodsubdivisions 1500 should have only a specific range of aspect ratios begeometrically consistent with an existing urban layout. Thus,neighborhood topology module 310 could determine that region 1400(4) istoo narrow and should be adjusted to form neighborhood subdivision1500(2). Neighborhood topology module 310 could also determine thatregion 1400(5) can safely be adjusted to compensate for the expansion ofregion 1400(4) without significantly impacting the aspect ratio of thatregion.

Referring generally to FIGS. 13-15, neighborhood topology module 310performs the above operations based on design heuristics 206 in order togenerate roads and neighborhood subdivisions having topologies that mayresemble those associated with existing urban layouts. In oneembodiment, a user may select one or more urban layouts as startingpoints for the generation of candidate designs 208, and neighborhoodtopology module 320 may then implement corresponding design heuristics206 when constructing road and neighborhood geometry for those candidatedesigns 208.

FIG. 16 is a flow diagram of method steps for generating road andneighborhood topologies for a design option, according to variousembodiments of the present invention. Although the method steps aredescribed in conjunction with the systems of FIGS. 1-15, persons skilledin the art will understand that any system configured to perform themethod steps in any order falls within the scope of the presentinvention.

As shown, a method 1600 begins at step 1602, where neighborhood topologymodule 310 selects a set of interconnected mesh lines within the designmesh generated via mesh generation module 300. Neighborhood topologymodule 310 selects the set of interconnected mesh lines based on designheuristics 208. Design heuristics 208 include construction rules forselecting portions of the design mesh to serve as roads. Theseconstruction rules can be derived from the organization of roads withinan existing urban layout. Step 1600 is described by way of example abovein conjunction with FIG. 13.

At step 1604, neighborhood topology module 310 assigns a road type toeach selected mesh line to produce a network of roads. The network ofroads may have similar characteristic features compared to an existingnetwork of roads found in an existing urban layout. For example, thenetwork of roads could include concentric circles of avenues intersectedby radially spaced streets. Step 1604 is also described by way ofexample above in conjunction with FIG. 13.

At step 1606, neighborhood topology module 310 determines regions of thedesign mesh that reside adjacent to the roads generated via steps 1602and 1604. In doing so, neighborhood topology module 310 may identify anycontiguous portions of the design mesh that have not been selected as aroad during steps 1602 and 1604. The determined regions can have anysize, although regions that are too small. Step 1606 is described by wayof example above in conjunction with FIG. 14.

At step 1608, neighborhood topology module 310 merges smaller regionstogether to form larger regions. Neighborhood topology module 310identifies regions that should be merged based on design heuristics 206in order to generate regions having a distribution of sizes that issimilar to an existing urban layout. Step 1608 is described by way ofexample above in conjunction with FIG. 15.

At step 1610, neighborhood topology module 310 trims areas of specificregions and/or adjusts the aspect ratio of specific regions to generateneighborhood subdivisions. Neighborhood topology module 310 can trimregions to smooth irregular boundaries. Neighborhood topology module 310can adjust the aspect ratio of regions to maintain consistency withother regions based on design heuristics 206. Step 1610 is alsodescribed by way of example above in conjunction with FIG. 15.

Neighborhood topology module 310 implements the method 1600 during theiterative design process described above in conjunction with FIG. 2.Once the network of roads and neighborhood subdivisions are generated,house topology module 320 and apartment topology module 330 andimplement the techniques described below in conjunction with FIGS.17-21.

House Topology module and Apartment Topology Module

House topology module 320 and apartment topology module 330 implementsimilar operations and are therefore described in conjunction with oneanother. Both of these modules perform a sequence of geometricconstruction steps to place dwelling units within the neighborhoodsubdivisions discussed above. FIG. 17 depicts an example of how housetopology module 320 places house units within neighborhood subdivisions.FIG. 18-20 depict examples of how apartment topology module 330 placesapartment complexes within neighborhood subdivisions.

FIG. 17 illustrates a placement that the house topology module of FIG. 3generates for house units within a neighborhood subdivision, accordingto various embodiments of the present invention. As shown, a search grid1700 is projected over a neighborhood subdivision 1710. House topologymodule 320 generates search grid 1700 in order to perform a brute forcesearch optimization to determine a specific position for a group 1720 ofhouse units. In one embodiment, house topology module 320 may analyzeeach possible placement of group 1720 within search grid 1700 and selectthe placement that maximizes the number of houses. During the searchoptimization, house topology module 320 generates different placementswithin search grid 1700 based on design heuristics 206. Designheuristics 206 could indicate, for example, rules for placing houses ina manner that is consistent with an arrangement of houses included in anexisting urban layout.

FIG. 18 illustrates unoccupied regions of the neighborhood subdivisionof FIG. 17 that are identified by the apartment topology module of FIG.3, according to various embodiments of the present invention. As shown,apartment topology module 330 projects a search grid outline 1800 overneighborhood subdivision 1710 in order to identify unoccupied region1810 of neighborhood subdivision 1710. Unoccupied region 1810 does notinclude any house units and is available for placing apartmentcomplexes.

FIG. 19 illustrates a placement that the apartment topology module ofFIG. 3 generates for an apartment complex within one of the unoccupiedregions of FIG. 18, according to various embodiments of the presentinvention. As shown, apartment topology module 330 projects search grid1900 within search grid outline 1800 of FIG. 18 and then constrainssearching to occur within unoccupied region 1810. Apartment topologymodule 330 performs a brute force search optimization to determine aspecific position for an apartment complex 1910. In one embodiment,apartment topology module 330 may analyze each possible placement ofapartment complex 1910 within search grid 1900 and select the placementthat is farthest away from group 1720 of house units. During the searchoptimization, apartment topology module 330 generates differentplacements within search grid 1900 based on design heuristics 206.Design heuristics 206 could indicate, for example, rules for placingapartment complexes in a manner that is consistent with the organizationof apartment complexes included in an existing urban layout.

FIG. 20 illustrates a neighborhood layout generated by the housetopology module and apartment topology module of FIG. 2, according tovarious embodiments of the present invention. As shown, various houses2000 and apartment complexes 2010 are distributed across differentneighborhood subdivisions. House topology module 320 assigns house typesto different groups of houses after generating house placements in themanner described above in conjunction with FIG. 17. Similarly, apartmenttopology module 330 assigns apartment complex types to differentapartment complexes after generating apartment placements in the mannerdescribed above in conjunction with FIGS. 18-19. The topology of housesand apartments may resemble that associated with an existing urbanlayout because house topology module 320 and apartment topology module330 operate based on design heuristics 206. In one embodiment, variousconstruction rules included in design heuristics 206 are derived basedon a topological analysis of an existing urban layout.

FIG. 21 is a flow diagram of method steps for populating neighborhoodsubdivisions with dwelling units for a design option, according tovarious embodiments of the present invention. Although the method stepsare described in conjunction with the systems of FIGS. 1-20, personsskilled in the art will understand that any system configured to performthe method steps in any order falls within the scope of the presentinvention.

As shown, a method 2100 begins at step 2102, where house topology module320 of FIG. 3 conducts a brute force search optimization to generatehouse placements within one or more neighborhood subdivisions. Housetopology module 320 generates a search grid to perform the brute forcesearch optimization and then generates different placements within thesearch grid based on design heuristics 206. In one embodiment, designheuristics 206 may indicate rules for placing houses in a manner that isconsistent with an arrangement of houses included in an existing urbanlayout. FIG. 17 illustrates an example of how house topology module 320implements step 2102.

At step 2104, apartment topology module 330 of FIG. 3 identifiesunoccupied regions of neighborhood subdivisions for apartmentplacements. In doing so, apartment topology module 330 projects a searchgrid outline over the neighborhood subdivision to determine areas thatdo not include house units and are available for placing apartmentcomplexes. FIG. 18 illustrates an example of how apartment topologymodule 330 implements step 2104.

At step 2106, apartment topology module 330 conducts a brute forcesearch optimization to generate apartment placements within theunoccupied regions identified at step 2104. Apartment topology module330 projects a search grid within the search grid outline implementedwhen performing step 2104. Apartment topology module 330 then constrainsa brute force search optimization to occur within unoccupied regions ofthe neighborhood subdivision based on design heuristics 206. In oneembodiment, design heuristics 206 may indicate rules for placingapartment complexes in a manner that is consistent with an arrangementof apartment complexes included in an existing urban layout. FIG. 19illustrates an example of how apartment topology module 330 implementsstep 2106.

At step 2108, house topology module 320 and apartment topology module330 assign house types to house placements and apartment types toapartment placements, respectively. House topology module 320 andapartment topology module 330 perform these assignments based on designheuristics in order to generate a distribution of houses and apartmentsthat is derivative of an existing urban layout.

Via the method 2100, house topology module 320 and apartment topologymodule 330 populate neighborhood subdivisions with houses andapartments. Vegetation module 340 then populates some or all remainingareas with parkland, landscaping, and/or other forms of vegetation. Inone embodiment, vegetation module 240 performs these operations based ondesign heuristics 206 to maintains consistency with an existing urbanlayout.

Once geometry engine 200 generates candidate designs 208 via thedifferent modules discussed above, evaluation engine 210 evaluates thesecandidate designs and generates design metrics 212. Geometry engine 200and evaluation engine 210 iterate in the manner described in order togenerate design options 140. Design options 140 may be derived from, andtherefore have certain characteristics in common with, an existing urbanlayout.

Examples of Design Options Derived from Existing Urban Layouts

FIG. 22 illustrates a design option that is derived from the topology ofa pre-existing urban layout, according to various embodiments of thepresent invention. As shown, design option 140(A) is characterized by3-way intersections and consistently-sized neighborhood subdivisions,among other things. Design heuristics 206(A) includes construction rulesderived from an existing urban layout having similar characteristics.

FIG. 23 illustrates a design option that is derived from the topology ofanother pre-existing urban layout, according to various otherembodiments of the present invention. As shown, design option 140(B) ischaracterized by avenues forming concentric arcs and radially-orientedstreets intersecting those arcs, thereby forming rhombus-shapedneighborhood subdivisions. Design heuristics 206(B) includesconstruction rules derived from an existing urban layout having similarcharacteristics.

FIG. 24 illustrates a design option that is derived from the topology ofyet another pre-existing urban layout, according to various otherembodiments of the present invention. As shown, design option 140(C) ischaracterized by a grid of roads that forms quadrangular neighborhoodsubdivisions. Design heuristics 206(C) includes construction rulesderived from an existing urban layout having similar characteristics.

Referring generally to FIGS. 22-25, in one embodiment, geometry engine200 may analyze the topology of existing urban layouts in order toderive design heuristics 206(A), 206(B), and 206(C). In doing so,geometry engine 200 may analyze the road topology, neighborhoodtopology, and dwelling unit topologies associated with each existingurban layout and to determine characteristic features of those layouts.Geometry engine 200 may then determine construction rules forincorporating those characteristics features into various designs togenerate design heuristics 206(A), 206(B), and 206(C).

In sum, an urban design pipeline automatically generates design optionsfor an urban design project. The urban design pipeline includes ageometry engine and an evaluation engine. The geometry engine analyzesdesign criteria, design objectives, and design heuristics associatedwith the urban design project and then generates numerous candidatedesigns. The design criteria specify a property boundary associated witha region of land to be developed, among other things. The designobjectives indicate specific objective functions that should beoptimized as well as various attributes that designs should have,including a specific type of topology that is derived from an existingurban layout. The design heuristics include different sets ofconstruction rules for generating designs with different types oftopologies. The geometry engine generates candidate designs that conformto the property boundary and have topological characteristics in commonwith the existing urban layout. Each candidate design includes adifferent layout of roads, house units, apartment units, and parklandsuitable for populating the region of land with occupants.

At least one technological advantage of the disclosed urban designpipeline is that design options are automatically generated that bothrespect a current property boundary and also include characteristicfeatures derived from the topology of an existing urban layout.Accordingly, designers can generate design options based on complexproperty boundaries with features that are similar to existing urbanlayouts. Another technological advantage is that the disclosed urbandesign pipeline includes repeatable components that can be easilyadapted to other urban design projects with different propertyboundaries that need to be inspired by different existing urban layouts.Thus, the process of generating designs can be greatly expeditedcompared to conventional, manual techniques. These technologicaladvantages represent multiple technological advancements relative toprior art approaches.

1. Some embodiments include a computer-implemented method for generatingdesigns for an urban design project via a computer-aided design (CAD)application, the method comprising generating, via a geometry engineincluded in the CAD application, a closed contour that surrounds adesign area based on one or more property boundaries associated with aregion of land, determining, via the geometry engine, a first segmentand a second segment of the closed contour, wherein the first segmentand the second segment reside on opposite sides of the design area andare both at least partially aligned in a first direction, generating,via the geometry engine, a first set of mesh lines based on the firstsegment and the second segment, wherein the first set of mesh lines spanthe design area and couple the first segment to the second segment,generating, via the geometry engine, a second set of mesh lines based onthe first set of mesh lines to generate a design mesh, and populating,via the geometry engine, the design mesh with a first set of structuresto generate a first candidate design, wherein the first set ofstructures resides within the closed contour and is aligned to at leasta first portion of the closed contour.

2. The computer-implemented method of clause 1, wherein determining thefirst segment of the closed contour comprises eliminating any segmentsof the closed contour having an orientation that is more aligned with asecond direction than with the first direction.

3. The computer-implemented method of any of clauses 1-2, whereingenerating the first set of mesh lines comprises discretizing the firstsegment of the closed contour to generate a first set of vertices,discretizing the second segment of the closed contour to generate asecond set of vertices, and connecting each vertex included in the firstset of vertices to a corresponding vertex included in the second set ofvertices to generate a different mesh line included in the first set ofmesh lines.

4. The computer-implemented method of any of clauses 1-3, whereingenerating the second set of mesh lines comprises for each mesh lineincluded in the first set of mesh lines, discretizing the mesh line togenerate a different set of vertices that spans the design area, foreach different set of vertices, connecting each vertex included in thedifferent set of vertices to a corresponding vertex included in anotherdifferent set of vertices to generate a different mesh line included inthe second set of mesh lines.

5. The computer-implemented method of any of clauses 1-4, furthercomprising, prior to generating the design mesh, modifying at least oneof the first set of mesh lines and the second set of mesh lines toadjust at least one polygon formed by the first set of mesh lines andthe second set of mesh lines.

6. The computer-implemented method of any of clauses 1-5, whereinpopulating the design mesh with the first set of structures comprisesdesignating a first line segment included in the design mesh as a firstroad, wherein the first line segment traverses at least a portion of thedesign area and is aligned with one or more portions of the closedcontour, and assigning a road type to the first road.

7. The computer-implemented method of any of clauses 1-6, whereinpopulating the design mesh with the first set of structures comprisesdetermining a first subset of the design mesh that divides the designarea into a first region and a second region, and generating a firstneighborhood subdivision based on at least one of the first region andthe second region, wherein at least one boundary of the neighborhoodsubdivision is aligned with one or more portions of the closed contour.

8. The computer-implemented method of any of clauses 1-7, whereinpopulating the design mesh with the first set of structures comprisesprojecting a search grid across a first neighborhood subdivisionincluded in the design mesh, wherein at least one side of the searchgrid is aligned with at least a portion of the closed contour, anditeratively placing different groups of dwelling units at differentpositions within the first neighborhood subdivision until a first groupof dwelling units that includes more dwelling units than any other groupof dwelling units included in the different groups of dwelling units isidentified, wherein a first dwelling unit included in the first group ofdwelling units includes at least one side that is aligned with one ormore portions of the closed contour.

9. The computer-implemented method of any of clauses 1-8, furthercomprising generating, via an evaluation engine, a first design metricfor the first candidate design based on a first objective function,determining, via the evaluation engine, that the first design metric isless than a threshold value, in response, populating, via the geometryengine, the design mesh with a second set of structures to generate asecond candidate design, wherein the second set of structures resideswithin the closed contour and is aligned with another portion of theclosed contour, generating, via the evaluation engine, a second designmetric for the second candidate design based on the first objectivefunction, and determining, via the evaluation engine, that the seconddesign metric is greater than the first design metric, indicating thatthe second candidate design is a higher ranked design than the firstcandidate design.

10. The computer-implemented method of any of clauses 1-9, wherein thefirst set of structures is arranged within the first candidate designaccording to a first topology that is derived from a pre-existingtopology associated with a pre-existing urban layout.

11. Some embodiments include a non-transitory computer-readable mediumstoring program instructions that, when executed by one or moreprocessors, cause the one or more processors to generate designs for anurban design project via a computer-aided design (CAD) application byperforming the steps of generating, via a geometry engine included inthe CAD application, a closed contour that surrounds a design area basedon one or more property boundaries associated with a region of land,determining, via the geometry engine, a first segment and a secondsegment of the closed contour, wherein the first segment and the secondsegment reside on opposite sides of the design area and are both atleast partially aligned in a first direction, generating, via thegeometry engine, a first set of mesh lines based on the first segmentand the second segment, wherein the first set of mesh lines span thedesign area and couple the first segment to the second segment,generating, via the geometry engine, a second set of mesh lines based onthe first set of mesh lines to generate a design mesh, and populating,via the geometry engine, the design mesh with a first set of structuresto generate a first candidate design, wherein the first set ofstructures resides within the closed contour and is aligned to at leasta first portion of the closed contour.

12. The non-transitory computer-readable of clause 11, wherein the stepof generating the first set of mesh lines comprises discretizing thefirst segment of the closed contour to generate a first set of vertices,discretizing the second segment of the closed contour to generate asecond set of vertices, and connecting each vertex included in the firstset of vertices to a corresponding vertex included in the second set ofvertices to generate a different mesh line included in the first set ofmesh lines.

13. The non-transitory computer-readable of any of clauses 11-12,wherein the step of generating the second set of mesh lines comprisesfor each mesh line included in the first set of mesh lines, discretizingthe mesh line to generate a different set of vertices that spans thedesign area, for each different set of vertices, connecting each vertexincluded in the different set of vertices to a corresponding vertexincluded in another different set of vertices to generate a differentmesh line included in the second set of mesh lines.

14. The non-transitory computer-readable of any of clauses 11-13,wherein the step of populating the design mesh with the first set ofstructures comprises designating a first line segment included in thedesign mesh as a first road, wherein the first line segment traverses atleast a portion of the design area and is aligned with one or moreportions of the closed contour, and assigning a road type to the firstroad.

15. The non-transitory computer-readable of any of clauses 11-14,wherein the step of populating the design mesh with the first set ofstructures comprises determining a first subset of the design mesh thatdivides the design area into a first region and a second region, andgenerating a first neighborhood subdivision based on at least one of thefirst region and the second region, wherein at least one boundary of theneighborhood subdivision is aligned with one or more portions of theclosed contour.

16. The non-transitory computer-readable of any of clauses 11-15,wherein the step of populating the design mesh with the first set ofstructures comprises projecting a search grid across a firstneighborhood subdivision included in the design mesh, wherein at leastone side of the search grid is aligned with at least a portion of theclosed contour, and iteratively placing different groups of dwellingunits at different positions within the first neighborhood subdivisionuntil a first group of dwelling units that includes more dwelling unitsthan any other group of dwelling units included in the different groupsof dwelling units is identified, wherein a first dwelling unit includedin the first group of dwelling units includes at least one side that isaligned with one or more portions of the closed contour.

17. The non-transitory computer-readable of any of clauses 11-16,further comprising the steps of generating, via an evaluation engine, afirst design metric for the first candidate design based on a firstobjective function, determining, via the evaluation engine, that thefirst design metric is less than a threshold value, in response,populating, via the geometry engine, the design mesh with a second setof structures to generate a second candidate design, wherein the secondset of structures resides within the closed contour and is aligned withanother portion of the closed contour, generating, via the evaluationengine, a second design metric for the second candidate design based onthe first objective function, and determining, via the evaluationengine, that the second design metric is greater than the first designmetric, indicating that the second candidate design is a higher rankeddesign than the first candidate design.

18. The non-transitory computer-readable of any of clauses 11-17,wherein the first set of structures is arranged within the firstcandidate design according to a first topology that is derived from apre-existing topology associated with a pre-existing urban layout, andwherein populating the design mesh with the first set of structurescomprises executing a first construction rule that is derived from thepre-existing topology based on a first set of construction parameters.

19. The non-transitory computer-readable of any of clauses 11-18,wherein the pre-existing topology comprises at least one of a topologyof roads, a topology of neighborhoods, and a topology of dwelling unitsincluded in the pre-existing urban layout.

20. Some embodiments include a system, comprising a memory storing acomputer-aided design (CAD) application, and a processor that, whenexecuting the CAD application, is configured to perform the steps ofgenerating, via a geometry engine included in the CAD application, aclosed contour that surrounds a design area based on one or moreproperty boundaries associated with a region of land, determining, viathe geometry engine, a first segment and a second segment of the closedcontour, wherein the first segment and the second segment reside onopposite sides of the design area and are both at least partiallyaligned in a first direction, generating, via the geometry engine, afirst set of mesh lines based on the first segment and the secondsegment, wherein the first set of mesh lines span the design area andcouple the first segment to the second segment, generating, via thegeometry engine, a second set of mesh lines based on the first set ofmesh lines to generate a design mesh, and populating, via the geometryengine, the design mesh with a first set of structures to generate afirst candidate design, wherein the first set of structures resideswithin the closed contour and is aligned to at least a first portion ofthe closed contour.

Any and all combinations of any of the claim elements recited in any ofthe claims and/or any elements described in this application, in anyfashion, fall within the contemplated scope of the present invention andprotection.

The descriptions of the various embodiments have been presented forpurposes of illustration, but are not intended to be exhaustive orlimited to the embodiments disclosed. Many modifications and variationswill be apparent to those of ordinary skill in the art without departingfrom the scope and spirit of the described embodiments.

Aspects of the present embodiments may be embodied as a system, methodor computer program product. Accordingly, aspects of the presentdisclosure may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “module” or“system.” Furthermore, aspects of the present disclosure may take theform of a computer program product embodied in one or more computerreadable medium(s) having computer readable program code embodiedthereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

Aspects of the present disclosure are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine. The instructions, when executed via the processor ofthe computer or other programmable data processing apparatus, enable theimplementation of the functions/acts specified in the flowchart and/orblock diagram block or blocks. Such processors may be, withoutlimitation, general purpose processors, special-purpose processors,application-specific processors, or field-programmable gate arrays.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While the preceding is directed to embodiments of the presentdisclosure, other and further embodiments of the disclosure may bedevised without departing from the basic scope thereof, and the scopethereof is determined by the claims that follow.

What is claimed is:
 1. A computer-implemented method for generatingdesigns for an urban design project via a computer-aided design (CAD)application, the method comprising: generating, via a geometry engineincluded in the CAD application, a closed contour that surrounds adesign area based on one or more property boundaries associated with aregion of land; determining, via the geometry engine, a first segmentand a second segment of the closed contour, wherein the first segmentand the second segment reside on opposite sides of the design area andare both at least partially aligned in a first direction; generating,via the geometry engine, a first set of mesh lines based on the firstsegment and the second segment, wherein the first set of mesh lines spanthe design area and couple the first segment to the second segment;generating, via the geometry engine, a second set of mesh lines based onthe first set of mesh lines to generate a design mesh; and populating,via the geometry engine, the design mesh with a first set of structuresto generate a first candidate design, wherein the first set ofstructures resides within the closed contour and is aligned to at leasta first portion of the closed contour.
 2. The computer-implementedmethod of claim 1, wherein determining the first segment of the closedcontour comprises eliminating any segments of the closed contour havingan orientation that is more aligned with a second direction than withthe first direction.
 3. The computer-implemented method of claim 1,wherein generating the first set of mesh lines comprises: discretizingthe first segment of the closed contour to generate a first set ofvertices; discretizing the second segment of the closed contour togenerate a second set of vertices; and connecting each vertex includedin the first set of vertices to a corresponding vertex included in thesecond set of vertices to generate a different mesh line included in thefirst set of mesh lines.
 4. The computer-implemented method of claim 1,wherein generating the second set of mesh lines comprises: for each meshline included in the first set of mesh lines, discretizing the mesh lineto generate a different set of vertices that spans the design area; foreach different set of vertices, connecting each vertex included in thedifferent set of vertices to a corresponding vertex included in anotherdifferent set of vertices to generate a different mesh line included inthe second set of mesh lines.
 5. The computer-implemented method ofclaim 1, further comprising, prior to generating the design mesh,modifying at least one of the first set of mesh lines and the second setof mesh lines to adjust at least one polygon formed by the first set ofmesh lines and the second set of mesh lines.
 6. The computer-implementedmethod of claim 1, wherein populating the design mesh with the first setof structures comprises: designating a first line segment included inthe design mesh as a first road, wherein the first line segmenttraverses at least a portion of the design area and is aligned with oneor more portions of the closed contour; and assigning a road type to thefirst road.
 7. The computer-implemented method of claim 1, whereinpopulating the design mesh with the first set of structures comprises:determining a first subset of the design mesh that divides the designarea into a first region and a second region; and generating a firstneighborhood subdivision based on at least one of the first region andthe second region, wherein at least one boundary of the neighborhoodsubdivision is aligned with one or more portions of the closed contour.8. The computer-implemented method of claim 1, wherein populating thedesign mesh with the first set of structures comprises: projecting asearch grid across a first neighborhood subdivision included in thedesign mesh, wherein at least one side of the search grid is alignedwith at least a portion of the closed contour; and iteratively placingdifferent groups of dwelling units at different positions within thefirst neighborhood subdivision until a first group of dwelling unitsthat includes more dwelling units than any other group of dwelling unitsincluded in the different groups of dwelling units is identified,wherein a first dwelling unit included in the first group of dwellingunits includes at least one side that is aligned with one or moreportions of the closed contour.
 9. The computer-implemented method ofclaim 1, further comprising: generating, via an evaluation engine, afirst design metric for the first candidate design based on a firstobjective function; determining, via the evaluation engine, that thefirst design metric is less than a threshold value; in response,populating, via the geometry engine, the design mesh with a second setof structures to generate a second candidate design, wherein the secondset of structures resides within the closed contour and is aligned withanother portion of the closed contour; generating, via the evaluationengine, a second design metric for the second candidate design based onthe first objective function; and determining, via the evaluationengine, that the second design metric is greater than the first designmetric, indicating that the second candidate design is a higher rankeddesign than the first candidate design.
 10. The computer-implementedmethod of claim 1, wherein the first set of structures is arrangedwithin the first candidate design according to a first topology that isderived from a pre-existing topology associated with a pre-existingurban layout.
 11. A non-transitory computer-readable medium storingprogram instructions that, when executed by one or more processors,cause the one or more processors to generate designs for an urban designproject via a computer-aided design (CAD) application by performing thesteps of: generating, via a geometry engine included in the CADapplication, a closed contour that surrounds a design area based on oneor more property boundaries associated with a region of land;determining, via the geometry engine, a first segment and a secondsegment of the closed contour, wherein the first segment and the secondsegment reside on opposite sides of the design area and are both atleast partially aligned in a first direction; generating, via thegeometry engine, a first set of mesh lines based on the first segmentand the second segment, wherein the first set of mesh lines span thedesign area and couple the first segment to the second segment;generating, via the geometry engine, a second set of mesh lines based onthe first set of mesh lines to generate a design mesh; and populating,via the geometry engine, the design mesh with a first set of structuresto generate a first candidate design, wherein the first set ofstructures resides within the closed contour and is aligned to at leasta first portion of the closed contour.
 12. The non-transitorycomputer-readable of claim 11, wherein the step of generating the firstset of mesh lines comprises: discretizing the first segment of theclosed contour to generate a first set of vertices; discretizing thesecond segment of the closed contour to generate a second set ofvertices; and connecting each vertex included in the first set ofvertices to a corresponding vertex included in the second set ofvertices to generate a different mesh line included in the first set ofmesh lines.
 13. The non-transitory computer-readable of claim 11,wherein the step of generating the second set of mesh lines comprises:for each mesh line included in the first set of mesh lines, discretizingthe mesh line to generate a different set of vertices that spans thedesign area; for each different set of vertices, connecting each vertexincluded in the different set of vertices to a corresponding vertexincluded in another different set of vertices to generate a differentmesh line included in the second set of mesh lines.
 14. Thenon-transitory computer-readable of claim 11, wherein the step ofpopulating the design mesh with the first set of structures comprises:designating a first line segment included in the design mesh as a firstroad, wherein the first line segment traverses at least a portion of thedesign area and is aligned with one or more portions of the closedcontour; and assigning a road type to the first road.
 15. Thenon-transitory computer-readable of claim 11, wherein the step ofpopulating the design mesh with the first set of structures comprises:determining a first subset of the design mesh that divides the designarea into a first region and a second region; and generating a firstneighborhood subdivision based on at least one of the first region andthe second region, wherein at least one boundary of the neighborhoodsubdivision is aligned with one or more portions of the closed contour.16. The non-transitory computer-readable of claim 11, wherein the stepof populating the design mesh with the first set of structurescomprises: projecting a search grid across a first neighborhoodsubdivision included in the design mesh, wherein at least one side ofthe search grid is aligned with at least a portion of the closedcontour; and iteratively placing different groups of dwelling units atdifferent positions within the first neighborhood subdivision until afirst group of dwelling units that includes more dwelling units than anyother group of dwelling units included in the different groups ofdwelling units is identified, wherein a first dwelling unit included inthe first group of dwelling units includes at least one side that isaligned with one or more portions of the closed contour.
 17. Thenon-transitory computer-readable of claim 11, further comprising thesteps of: generating, via an evaluation engine, a first design metricfor the first candidate design based on a first objective function;determining, via the evaluation engine, that the first design metric isless than a threshold value; in response, populating, via the geometryengine, the design mesh with a second set of structures to generate asecond candidate design, wherein the second set of structures resideswithin the closed contour and is aligned with another portion of theclosed contour; generating, via the evaluation engine, a second designmetric for the second candidate design based on the first objectivefunction; and determining, via the evaluation engine, that the seconddesign metric is greater than the first design metric, indicating thatthe second candidate design is a higher ranked design than the firstcandidate design.
 18. The non-transitory computer-readable of claim 11,wherein the first set of structures is arranged within the firstcandidate design according to a first topology that is derived from apre-existing topology associated with a pre-existing urban layout, andwherein populating the design mesh with the first set of structurescomprises executing a first construction rule that is derived from thepre-existing topology based on a first set of construction parameters.19. The non-transitory computer-readable of claim 11, wherein thepre-existing topology comprises at least one of a topology of roads, atopology of neighborhoods, and a topology of dwelling units included inthe pre-existing urban layout.
 20. A system, comprising: a memorystoring a computer-aided design (CAD) application; and a processor that,when executing the CAD application, is configured to perform the stepsof: generating, via a geometry engine included in the CAD application, aclosed contour that surrounds a design area based on one or moreproperty boundaries associated with a region of land, determining, viathe geometry engine, a first segment and a second segment of the closedcontour, wherein the first segment and the second segment reside onopposite sides of the design area and are both at least partiallyaligned in a first direction, generating, via the geometry engine, afirst set of mesh lines based on the first segment and the secondsegment, wherein the first set of mesh lines span the design area andcouple the first segment to the second segment, generating, via thegeometry engine, a second set of mesh lines based on the first set ofmesh lines to generate a design mesh, and populating, via the geometryengine, the design mesh with a first set of structures to generate afirst candidate design, wherein the first set of structures resideswithin the closed contour and is aligned to at least a first portion ofthe closed contour.